package com.agua.enturno.vista.dto.assemblers;

import com.agua.enturno.excepciones.ExcepcionDeReglaDelNegocio;
import com.agua.enturno.modelo.agenda.DiaNoLaboral;
import com.agua.enturno.vista.dto.DiaNoLaboralDTO;

import java.util.ArrayList;
import java.util.List;
import java.util.SortedSet;

public class DiaNoLaboralAssembler extends NullAwareSimpleAssembler<DiaNoLaboral, DiaNoLaboralDTO> {

	@Override
	protected DiaNoLaboralDTO internalAssemble(DiaNoLaboral diaNoLaboral) {
		return new DiaNoLaboralDTO(diaNoLaboral.getId(), diaNoLaboral.getFecha(), diaNoLaboral.getMotivo());
	}

	@Override
	protected DiaNoLaboral internalDisassemble(DiaNoLaboralDTO diaNoLaboralDTO) throws ExcepcionDeReglaDelNegocio {
		return new DiaNoLaboral(diaNoLaboralDTO.getFecha(), diaNoLaboralDTO.getMotivo());
	}
	
	public List<DiaNoLaboralDTO> assemble(SortedSet<DiaNoLaboral> diasNoLaborales) {
		
		List<DiaNoLaboralDTO> diasNoLaboralesDTO = new ArrayList<DiaNoLaboralDTO>();
		
		for (DiaNoLaboral diaNoLaboral : diasNoLaborales) 
			diasNoLaboralesDTO.add(assemble(diaNoLaboral));
		
		return diasNoLaboralesDTO;
	}
	
}
